#if !defined(_SENUMTYPEDESCRIPTORENTRY_H)
#define _SENUMTYPEDESCRIPTORENTRY_H

#include "TypeDescriptorEntry.h"

CREATE_ALIAS( SEnumEntry );

/**
 * Class used to store an enum type descriptor entry
 */
class DECLARATION_DLL SEnumEntry : public TypeDescriptorEntry
{
	/** Value of the entry. */
    unsigned long value;

	/** Create an enum entry. */
	SEnumEntry(string name, unsigned long value, string description) : TypeDescriptorEntry(name, description)
	{
		this->value = value;
	}

	public:

		/**
		 * Get the key of the enum entry.
		 */
		virtual string GetValue()
		{
			return name;
		}

		/**
		 * Get the value of the enum entry.
		 */
		virtual unsigned long GetNumericValue()
		{
			return value;
		}

		/**
		 *   Factory method to create an enum entry.
		 */
		static SEnumEntrySp Create(string name, unsigned long value, string description);
};

#endif  //_SENUMTYPEDESCRIPTORENTRY_H
